package com.ruoyi.system.domain;

import java.math.BigDecimal;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 桌台次卡产品配置 对象 table_pass_cards
 *
 * @author ruoyi
 * @date 2025-05-23
 */
public class TablePassCards extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 次卡唯一标识符（自增主键，用于关联订单/用户表） */
    private Long id;

    /** 桌台次卡名称（如"周末畅玩5次卡"） */
    @Excel(name = "桌台次卡名称")
    private String passCardName;

    /** 桌台次卡唯一编号（如"WKND-5PASS-2023"） */
    @Excel(name = "桌台次卡唯一编号")
    private String passCardCode;

    /** 单人购买限制类型（默认不限制） */
    @Excel(name = "单人购买限制类型", readConverterExp = "默=认不限制")
    private String individualPurchaseLimit;

    /** 单人限购张数（当individual_purchase_limit为"单人最多购买X张"时生效） */
    @Excel(name = "单人限购张数")
    private Long individualLimitValue;

    /** 总限购规则（默认不限制） */
    @Excel(name = "总限购规则", readConverterExp = "默=认不限制")
    private String totalPurchaseLimit;

    /** 总限购张数（当total_purchase_limit为"限购X张"时生效） */
    @Excel(name = "总限购张数")
    private Long totalLimitValue;

    /** 次卡适用桌台分类（默认全部桌台通用） */
    @Excel(name = "次卡适用桌台分类", readConverterExp = "默=认全部桌台通用")
    private String applicableTableCategories;

    /** 次卡详细规则说明（如使用时段、有效期等） */
    @Excel(name = "次卡详细规则说明", readConverterExp = "如=使用时段、有效期等")
    private String passCardDescription;

    /** 次卡单价（单位：元） */
    @Excel(name = "次卡单价", readConverterExp = "单=位：元")
    private BigDecimal price;

    /** 次卡有效期（单位：天，0表示永久有效） */
    @Excel(name = "次卡有效期", readConverterExp = "单=位：天，0表示永久有效")
    private Long validityDays;

    /** 次卡状态（1=启用，0=停用） */
    @Excel(name = "次卡状态", readConverterExp = "1==启用，0=停用")
    private Integer status;

    /** 手机号 */
    @Excel(name = "手机号")
    private String phone;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }

    public void setPassCardName(String passCardName)
    {
        this.passCardName = passCardName;
    }

    public String getPassCardName()
    {
        return passCardName;
    }

    public void setPassCardCode(String passCardCode)
    {
        this.passCardCode = passCardCode;
    }

    public String getPassCardCode()
    {
        return passCardCode;
    }

    public void setIndividualPurchaseLimit(String individualPurchaseLimit)
    {
        this.individualPurchaseLimit = individualPurchaseLimit;
    }

    public String getIndividualPurchaseLimit()
    {
        return individualPurchaseLimit;
    }

    public void setIndividualLimitValue(Long individualLimitValue)
    {
        this.individualLimitValue = individualLimitValue;
    }

    public Long getIndividualLimitValue()
    {
        return individualLimitValue;
    }

    public void setTotalPurchaseLimit(String totalPurchaseLimit)
    {
        this.totalPurchaseLimit = totalPurchaseLimit;
    }

    public String getTotalPurchaseLimit()
    {
        return totalPurchaseLimit;
    }

    public void setTotalLimitValue(Long totalLimitValue)
    {
        this.totalLimitValue = totalLimitValue;
    }

    public Long getTotalLimitValue()
    {
        return totalLimitValue;
    }

    public void setApplicableTableCategories(String applicableTableCategories)
    {
        this.applicableTableCategories = applicableTableCategories;
    }

    public String getApplicableTableCategories()
    {
        return applicableTableCategories;
    }

    public void setPassCardDescription(String passCardDescription)
    {
        this.passCardDescription = passCardDescription;
    }

    public String getPassCardDescription()
    {
        return passCardDescription;
    }

    public void setPrice(BigDecimal price)
    {
        this.price = price;
    }

    public BigDecimal getPrice()
    {
        return price;
    }

    public void setValidityDays(Long validityDays)
    {
        this.validityDays = validityDays;
    }

    public Long getValidityDays()
    {
        return validityDays;
    }

    public void setStatus(Integer status)
    {
        this.status = status;
    }

    public Integer getStatus()
    {
        return status;
    }

    public void setPhone(String phone)
    {
        this.phone = phone;
    }

    public String getPhone()
    {
        return phone;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("passCardName", getPassCardName())
                .append("passCardCode", getPassCardCode())
                .append("individualPurchaseLimit", getIndividualPurchaseLimit())
                .append("individualLimitValue", getIndividualLimitValue())
                .append("totalPurchaseLimit", getTotalPurchaseLimit())
                .append("totalLimitValue", getTotalLimitValue())
                .append("applicableTableCategories", getApplicableTableCategories())
                .append("passCardDescription", getPassCardDescription())
                .append("price", getPrice())
                .append("validityDays", getValidityDays())
                .append("status", getStatus())
                .append("createTime", getCreateTime())
                .append("updateTime", getUpdateTime())
                .append("phone", getPhone())
                .toString();
    }
}
